package src.java.medium;

public class Solution73 {
    //    public static void placeZero(int[][] matrix, int i, int j) {
//        for (int x = 0; x < matrix[0].length; x++) {
//            matrix[i][x] = 0;
//        }
//        for (int y = 0; y < matrix.length; y++) {
//            matrix[y][j] = 0;
//        }
//    }
    public static void placeRowZero(int[][] matrix, int i) {
        for (int x = 0; x < matrix[0].length; x++) {
            matrix[i][x] = 0;
        }
    }

    public static void placeColZero(int[][] matrix, int j) {
        for (int x = 0; x < matrix.length; x++) {
            matrix[x][j] = 0;
        }
    }

    public static void setZeroes(int[][] matrix) {
        int[] row = new int[matrix.length];
        int[] col = new int[matrix[0].length];
//        int[][] isZero = new int[matrix.length][matrix[0].length];
        for (int i = 0; i < matrix.length; i++) {
            {
                for (int j = 0; j < matrix[0].length; j++) {
                    if (matrix[i][j] == 0) {
//                        isZero[i][j] = 1;
                        row[i] = 1;
                        col[j] = 1;
                    }
                }
            }
        }
        for (int i = 0; i < row.length; i++) {
            if (row[i] == 1) placeRowZero(matrix, i);
        }
        for (int i = 0; i < col.length; i++) {
            if (col[i] == 1) placeColZero(matrix, i);
        }
//        for (int i = 0; i < matrix.length; i++) {
//            for (int j = 0; j < matrix[0].length; j++) {
//                if (isZero[i][j] == 1) {
//                    placeZero(matrix, i, j);
//                }
//            }
//        }
    }

    public static void main(String[] args) {
        int[][] matrix = {{0,1,2,0}, {3,4,5,2}, {1,3,1,5}};
        setZeroes(matrix);
    }
}
